using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("SecretSpellController")]
	public class SecretSpellController : SpellController
	{
		public List<SecretBannerDef> m_BannerDefs => method_3<Class271<SecretBannerDef>>("m_BannerDefs")?.method_25();

		public Spell m_DefaultBannerSpellPrefab => method_3<Spell>("m_DefaultBannerSpellPrefab");

		public Spell m_bannerSpell => method_3<Spell>("m_bannerSpell");

		public Spell m_triggerSpell => method_3<Spell>("m_triggerSpell");

		public SecretSpellController(IntPtr address, string className)
			: base(address, className)
		{
		}

		public SecretSpellController(IntPtr address)
			: this(address, "SecretSpellController")
		{
		}

		public new bool AddPowerSourceAndTargets(PowerTaskList taskList)
		{
			return method_11<bool>("AddPowerSourceAndTargets", new object[1] { taskList });
		}

		public new void OnProcessTaskList()
		{
			method_8("OnProcessTaskList");
		}

		public bool FireSecretActorSpell()
		{
			return method_11<bool>("FireSecretActorSpell", Array.Empty<object>());
		}

		public Spell GetTriggerSpell(Card card)
		{
			return method_14<Spell>("GetTriggerSpell", new object[1] { card });
		}

		public bool InitTriggerSpell(Card card, Spell triggerSpell)
		{
			return method_11<bool>("InitTriggerSpell", new object[2] { card, triggerSpell });
		}

		public bool FireTriggerSpell()
		{
			return method_11<bool>("FireTriggerSpell", Array.Empty<object>());
		}

		public void OnTriggerSpellFinished(Spell triggerSpell, object userData)
		{
			method_8("OnTriggerSpellFinished", triggerSpell, userData);
		}

		public void OnTriggerSpellStateFinished(Spell triggerSpell, SpellStateType prevStateType, object userData)
		{
			method_8("OnTriggerSpellStateFinished", triggerSpell, prevStateType, userData);
		}

		public Spell DetermineBannerSpellPrefab(Entity sourceEntity)
		{
			return method_14<Spell>("DetermineBannerSpellPrefab", new object[1] { sourceEntity });
		}

		public bool InitBannerSpell(Entity sourceEntity)
		{
			return method_11<bool>("InitBannerSpell", new object[1] { sourceEntity });
		}

		public bool FireBannerSpell()
		{
			return method_11<bool>("FireBannerSpell", Array.Empty<object>());
		}

		public void OnBannerSpellStateFinished(Spell spell, SpellStateType prevStateType, object userData)
		{
			method_8("OnBannerSpellStateFinished", spell, prevStateType, userData);
		}
	}
}
